;;;; -*- Mode: Lisp -*-
;;;; $Id: 37d41ac41d2b0c05a023ca98892d4c28dd406b2c $
;;;; 
;;;; Copyright (c) 2009 Steve Knight <stkni@gmail.com>
;;;; 
;;;; Permission is hereby granted, free of charge, to any person obtaining
;;;; a copy of this software and associated documentation files (the
;;;; "Software"), to deal in the Software without restriction, including
;;;; without limitation the rights to use, copy, modify, merge, publish,
;;;; distribute, sublicense, and/or sell copies of the Software, and to
;;;; permit persons to whom the Software is furnished to do so, subject to
;;;; the following conditions:
;;;; 
;;;; The above copyright notice and this permission notice shall be
;;;; included in all copies or substantial portions of the Software.
;;;; 
;;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
;;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
;;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
;;;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
;;;; LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
;;;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
;;;; WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;;;;
(in-package "CL-MYSQL-TEST")

(defsuite* test-prepare)

(deftest test-bind-out-of-range ()
  (let ((dummy-statement (make-instance 'statement 
                            :nargs 1)))
  (is (handler-case (progn 
		      (bind-arg dummy-statement 1)
		      nil)
	(cl-mysql-error () t)))))

(deftest test-configure-bindings ()
  (let ((dummy-statement (make-instance 'statement
			    :nargs 1)))
    (configure-bindings dummy-statement 10)
    (is 10 (length (bound-map dummy-statement)))
    (is (notany #'identity (bound-map dummy-statement)))))


(deftest test-next-index-and-bind ()
  (let ((dummy-statement (make-instance 'statement)))
    (configure-bindings dummy-statement 1)
    (is 0 (next-index dummy-statement))
    (bind dummy-statement :LONG)
    (is (handler-case (progn 
			(next-index dummy-statement)
			nil)
	(cl-mysql-error () t)))))
